Local Mobile Memo For Non-interrupting Link Noting

ABSTRACT

Systems, methods, routines and/or techniques for a local mobile memo for non-interrupting link noting are described. One or more embodiments may include a method that may include displaying to a user a page containing a link, receiving a first user input that indicates the link should be saved for potential later processing and saving the link to a local repository so that the link can be processed later. The saving may occur while the page continues to be displayed. The saving may occur without processing the link to perform the associated action. The method may include displaying a list (e.g., including the link) of one or more links saved in the repository, for example, in response to an event that indicates that the user may be interested in viewing links in the link repository.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present disclosure is a continuation of U.S. patent application Ser.No. 15/162,399, filed May 23, 2016, and entitled “Local Mobile Memo forNon-Interrupting Link Noting,” which claims priority to U.S. patentapplication Ser. No. 13/667,619, filed Nov. 2, 2012, and entitled “LocalMobile Memo for Non-Interrupting Link Noting,” the entire contents ofwhich are incorporated by reference herein for all purposes.

FIELD

The present disclosure relates to saving links on mobile devices, andmore particularly to one or more systems, methods, routines and/ortechniques for a local mobile memo for non-interrupting link noting.

BACKGROUND

Mobile devices such as smartphones have become more advanced. Somemobile devices incorporate a processor that runs computer code,including code that implements an operating system (OS). Some mobiledevices are capable of running applications, for example, web browsersthat display standard web pages as well as mobile-optimized web pages.Some mobile devices include a screen, for example, a touchscreen, thatmay span a substantial portion of an outside surface of the mobiledevice. A touchscreen may allow a user to interact with the mobiledevice using a pointer or a finger.

Further limitations and disadvantages of conventional and traditionalapproaches will become apparent to one of skill in the art, throughcomparison of such systems with some aspects of the present invention asset forth in the remainder of the present application and with referenceto the drawings.

SUMMARY

The present disclosure describes one or more systems, methods, routinesand/or techniques for a local mobile memo for non-interrupting linknoting. One or more systems, methods, routines and/or techniques mayinclude an intelligent local memo with a link repository. One or moresystems, methods, routines and/or techniques may allow a user to save alink, for example, a link that is embedded in a page and/or applicationthat the user is currently viewing. One or more systems, methods,routines and/or techniques may allow a user to save the link in the linkrepository of the local memo without interrupting what the user is doingon a current page and/or application. The local memo may display anindication of saved links, for example, when the user exits the currentpage and/or application.

These and other advantages, aspects and novel features of the presentdisclosure, as well as details of an illustrated embodiment thereof,will be more fully understood from the following description anddrawings. It is to be understood that the foregoing general descriptionsare exemplary and explanatory only and are not restrictive of thedisclosure as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

Several features and advantages are described in the followingdisclosure, in which several embodiments are explained, using thefollowing drawings as examples.

FIG. 1 depicts a block diagram showing example components, connectionsand interactions of a network setup, where one or more embodiments ofthe present disclosure may be useful in such a network setup.

FIG. 2 depicts an illustration of an example mobile device or smartphoneand various example pieces of code or functions that may run or executeon a mobile device or smartphone, according to one or more embodimentsof the present disclosure.

FIG. 3 depicts an illustration of an example user action with respect toa mobile device or smartphone and an example confirmation notice,according to one or more embodiment of the present disclosure.

FIG. 4 depicts an illustration of an example of how various pieces ofcode or functions may cause various applications, pages, indications,advertisements and the like to display on the screen of a mobile deviceor smartphone, according to one or more embodiments of the presentdisclosure.

FIG. 5 depicts an illustration of an example of how various pieces ofcode or functions may cause various applications, pages, advertisementsand the like to display on the screen of a mobile device or smartphone,according to one or more embodiments of the present disclosure.

FIGS. 6A-6C depict a flow diagram that shows example steps in a methodfor a local mobile memo for non-interrupting link noting, in accordancewith one or more embodiments of the present disclosure.

FIG. 7 depicts a block diagram of an example data processing system 700that may be included within a mobile device 706 or smartphone, accordingto one or more embodiments of the present disclosure.

DETAILED DESCRIPTION

Mobile device screens have become larger over the years, but the screenson various devices are still substantially smaller than many monitorsfor desktop computers. Because of the small screen size of variousmobile devices, various applications that are designed for mobiledevices may be programmed to use most or all of the screen. In somesituations, it may not be feasible or desirable to split the screenbetween multiple applications at the same time. In the situations wherea single application consumes the screen at any one time, a user may beinconvenienced. For example, the user may have to select one applicationat a time to focus on, and the user may avoid actions that may take theuser away from the current application. For example, if a user isnavigating a webpage (e.g., a news webpage) in a web browser, the usermay see an embedded link (e.g., a URL or URI to a different news story)that interests the user, but the user may avoid taking an action thatmay activate the link because the user may know that taking such anaction will cause a different window to consume the mobile devicescreen, perhaps interrupting what the user is doing on the currentscreen (e.g., reading the current news story). If the user chooses toavoid activating the embedded link, the user may forget to return tothat link once the user is finished with the current application and/orscreen. Effective, productive and/or efficient use of one or moreapplications, and/or effective, productive and/or efficient use of thescreen “real estate” of mobile devices may be important.

The present disclosure describes one or more systems, methods, routinesand/or techniques for a local mobile memo for non-interrupting linknoting. One or more systems, methods, routines and/or techniques mayinclude an intelligent local memo with a link repository. One or moresystems, methods, routines and/or techniques may allow a user to save alink, for example, a link that is embedded in a page and/or applicationthat the user is currently viewing. One or more systems, methods,routines and/or techniques may allow a user to save the link in the linkrepository of the local memo without interrupting what the user is doingon a current page and/or application. The local memo may display anindication of saved links, for example, when the user exits the currentpage and/or application.

FIG. 1 depicts a block diagram showing example components, connectionsand interactions of a network setup 100, where one or more embodimentsof the present disclosure may be useful in such a network setup. Itshould be understood that the network setup 100 may include additionalor fewer components, connections and interactions than are shown inFIG. 1. FIG. 1 focuses on a portion of what may be a much larger networkof components, connections and interactions. Network setup 100 mayinclude one or more networks (for example, network 102), one or moremobile devices (for example, mobile device 104) and a number of servers(for example, application and/or content servers 106, 108, 110). Network102 may be a medium used to provide communication links between variousdevices, such as data processing systems, servers, mobile devices andperhaps other devices. Network 102 may include connections such aswireless or wired communication links. In some examples, network 102represents a worldwide collection of networks and gateways that use theTransmission Control Protocol Internet Protocol (TCP IP) suite ofprotocols to communicate with one another. In some examples, network 102may include or be part of an intranet, a local area network (LAN), awide area network (WAN) and/or the Internet. Network setup 100 mayinclude one or more mobile devices, for example, mobile device 104.Mobile devices may communicate with application servers and/or contentservers, and optionally other servers and/or devices, via one or morenetworks.

FIG. 2 depicts an illustration of an example mobile device 204 orsmartphone, according to one or more embodiments of the presentdisclosure. Mobile device 204 may be substantially similar to the mobiledevice 104 of FIG. 1, for example. Mobile device 204 may incorporate aprocessor that runs or executes computer code, including code thatimplements an operating system (OS), other native code (i.e., codewritten by the creator of the smartphone and/or the operating system)and code developed by third parties (e.g., third party applications).Mobile device 204 may also run or execute code from one or more softwaredevelopment kits (SDKs) and/or one or more application programminginterfaces (APIs). FIG. 2 depicts various example pieces of code orfunctions that may run or execute on mobile device 204.

Mobile device 204 may include code related to one or more applications,for example, application 1 (indicated generally by part 206). Eachapplication may be programmed to display one or more pages or frames onthe screen of the mobile device 204. For example, application 1 maydisplay a page 1 (also indicated generally by part 206). Referring toFIG. 2, part 208 may generally indicate other applications and/or pagesor frames that may be displayed on the mobile device 204. As onespecific example, application 1 may be a web browser that displays apage 1 (part 206), which may be a first web page, and part 208 mayindicate a page 2 that the web browser displays, e.g., a second webpage. As another specific example, application 1 may be a web browserthat displays a page 1 (part 206), and part 208 may indicate a differentapplication, i.e., application 2, for example, a phone application. Insome embodiments, a page displayed by an application may take up, fillor consume the entire screen of the mobile device 204. For example, page1 of application 1 may consume the entire screen of the mobile device204. In this example, according to various techniques, a user may haveto switch to a different application or a different page in order to seesomething other than what is displayed on page 1 of application 1 (part206). One or more systems, methods, routines and/or techniques of thepresent disclosure may provide one or more solutions to address thisinconvenience.

Mobile device 204 may include code related to a local memo 210. Localmemo 210 may accept input from a user and may communicate with one ormore applications, for example, application(s) 1, 2, 3, etc. (denotedgenerally by parts 206, 208). Local memo 210 may save one or more links,for example, links that are embedded in a page and/or application thatthe user is currently viewing. Local memo 210 may allow a user to savethe one or more links without interrupting what the user is doing on acurrent page and/or application. Local memo 210 may remind the user of(or otherwise indicate) saved links, for example, when the user exitsthe current page and/or application. Local memo 210 may be implementedat various levels and/or layers of the mobile phone architecture. Forexample, local memo 210 may be implemented at the operating system (OS)layer, for example, as a continuously running background process. Thebackground process may listen for input from a user, for example, afinger swipe via a touchscreen, and may communicate with one or moreapplications. As another example, local memo 210 may be implemented asan application (e.g., at the native application layer), for example, asa continuously running background application. The backgroundapplication may communicate with the OS to accept input from a user, andmay communicate with one or more other applications.

Local memo 210 may include one or more settings and/or configurationpages and/or frames. A settings and/or configuration page may allow auser and/or administrator to configure the local memo to operate in aparticular manner. A user may access and/or navigate to a settingsand/or configuration page/frame in a variety of ways. For example, theuser may access a settings and/or configurations page in a mannersimilar to the way a user would access various settings related to theOS running on the mobile device. As another example, the user may accessa settings and/or configuration page in a manner similar to the way auser would access various applications installed on the mobile device.

Local memo 210 may include a number of pieces of code, functions,modules, routines, or the like, for example, link repository 212, linklist/reminder 214 and content/ad targeting 216. Link repository 212 maysave, store or note links (and optionally, additional information), forexample, in response to input from a user. Link repository 212 may allowa user to save one or more links into the link repository 212 withoutinterrupting what the user is doing on a current page and/orapplication. It should be understood that term “link” may refergenerally to any piece of information from a page or frame displayed byan application, where the information may be used or processed to by anapplication or software program to perform a function or action. Forexample, a link may refer to a URL or URI or URI from a webpage, wherethe URL or URI or URI may be saved in the link repository and may beused by a web browsing application to navigate to the URL or URI. Asanother example, a link may refer to a telephone number (e.g., an activeURL or URI or simple text), where the telephone number may be saved inthe link repository and may be used by a telephone application later tocall the telephone number. As another example, a link may refer to astreet address (e.g., an active URL or URI or simple text), where thestreet address may be saved in the link repository and may be used by amaps application later to display an interactive map related to thestreet address. Various other examples of links will become apparentafter referencing this disclosure.

In general, a user of a mobile device (e.g., mobile device 204), whileviewing a page generated by an application (e.g., page 1 of application1, indicated generally at part 206) may perform some action (e.g., afinger swipe) with respect to the mobile device to cause the local memo210 and/or the link repository 212 to save one or more links (e.g., link1, link 2, etc. as shown in FIG. 2). The local memo 210 and/or the linkrepository 212 may save these one or more links without interrupting theuser, e.g., without causing the screen of the mobile device to display adifferent page and/or application. The local memo 210 and/or the linkrepository 212 may communicate with one or more storage and/or memorymeans in the mobile device 204 to save and/or recall information. Forexample, local memo 210 and/or the link repository 212 may communicatewith volatile or non-volatile memory, persistent storage, flash memoryor the like.

Link repository 212 may save, store or note additional information alongwith a link, for example, contextual information. For example, when auser indicates that the link repository 212 should save a link, the linkrepository 212 may also analyze and/or capture text (i.e., snippets)that surrounds the link as it appears in the current page and/orapplication. The link repository 212 may capture a few sentences and/orlines of text that appear around the link, for example, before, after,above, below, left of and/or right of the link. These snippets of textthat surround the link may indicate information about the link, forexample, the general content that the link points to or is associatedwith. As another example of contextual information, the link repository212 may capture general information about the current page that the useris viewing, for example, information appearing elsewhere in the pageand/or information provided in keywords and/or comments of the code usedto generate the page. The link repository 212 may capture generalinformation from the frame or step of an application as displayed, ifapplicable. Contextual information may be analyzed by one or more otherpieces of code, functions, modules, routines, or the like in the localmemo 210 to determine information about the links that the user saved.For example, a content/ad targeting function may aid in formulatingcontent requests that are related to keywords, topics and the like thatappear in the contextual information saved in the link repository 212.

As another example of additional information saved along with a link,when a user indicates that the link repository 212 should save a link,the link repository 212 may also save a reverse link, which may be alink that refers back to the current webpage that the user is viewing.The reverse link may include a page URL or URI and/or a shortcut to anapplication (optionally, with an indication of a particular page, frameor step). The reverse link may allow a user, when viewing saved links,to determine the source of the link, i.e., which application and/or pagethe user was viewing when the user saved the link.

Link repository 212 may save, store or note links in response to userinput, for example, one or more user actions with respect to the mobiledevice 204. Local memo and/or link repository 212 may utilize one ormore user interface (UI) schemes to accept and/or interpret user input.If the local memo 210 is implemented at the operating system (OS) layer,the local memo may communicate with one or more device drivers, forexample, a driver that facilitates communication between the OS and thetouchscreen. If the local memo 210 is implemented as an application, thelocal memo may communicate with the OS to accept input from a user.Local memo 210 and/or link repository 212 may accept and interpretvarious user actions that may indicate, among other things, that a linkshould be saved. For example, a user may swipe or gesture pointer(s)(e.g., digital or physical) or finger(s) across or within the screen ofthe mobile device, for example, where a swipe or gesture moves over ornear a link that the user wants to save. An example of a swipe may be aright, left, up, down or diagonal swipe, for example, that starts on ornear the link and moves to the edge of the screen. FIG. 3 shows oneexample of a swipe that may be used to store a link, according to one ormore embodiment of the present disclosure. As can be seen in FIG. 3, auser may be viewing an application and/or page on a mobile device, wherethe application and/or page includes a link (e.g., Link 1). The user'sfinger may touch the screen of the mobile device at a first location302, near Link 1. The user's finger may then swipe across the screenending at a second location, e.g., location 304. The second location maybe near the edge of the screen or off the edge of the screen.

It should be understood that FIG. 3 shows just one example of a useractions, and this disclosure contemplates several other user actionsthat may indicate, among other things, that a link should be saved.Another example of a swipe may include swiping multiple pointers orfingers concurrently, for example, a two-finger pinch on or near a link.An example of a gesture may be a curve or sequence of swipes that movesaround the screen surface, such as an “S” for “save.” As another exampleof a user action, a user may click on or touch a link to indicate to thelocal memo 210 that the link should be saved. For example, the user mayclick on or touch a link within a special area. As another example, whena user clicks on or touches a link, the user may be presented withoptions, for example, “navigate to link,” “activate link,” “save link”and/or the like. As another example of a user action, a user may clickon or touch a link and then continue to touch the link to activate a“dragging” mode. The dragging mode may allow a user to drag arepresentation of the link into an area of the screen that may indicatethat the link should be saved. As a specific example, the user may touchand hold a link to activate dragging, and a toolbar or “bucket” mayappear, and the user may drag the link into the toolbar or bucket tosave the link. The user may then discontinue touching the screen, andthe toolbar or bucket may disappear. As another example of a useraction, a user may perform a gesture that does not include touching themobile device, and the mobile device may detected and interpreted thegesture. As a specific example, a user may perform a gesture in the airwith the user's hand and the mobile device may detect the gesture withan integrated camera. As another specific example, a user may speak orotherwise cause a sound and the mobile device may detect the sound withan integrated microphone. Various other user actions, for example, thatmay indicate that a link should be saved, will become apparent afterreferencing this disclosure.

Local memo 210 may include one or more settings and/or configurationpages and/or frames. A settings and/or configuration page may allow auser and/or administrator to configure the local memo to recognize,interpret and/or respond to one or more particular user actions, forexample, user actions that indicate that a link should be saved. In thisrespect, a user may choose which actions cause a link to be saved.

Link repository 212 may indicate or display one or more confirmationnotices when a link is saved, stored or noted. Local memo and/or linkrepository 212 may communicate with one or more user interface (UI)devices, drivers and the like in the mobile device in order to indicatea confirmation notice. For example, local memo and/or link repository212 may communicate with the screen and/or speakers included in themobile device. As one example of a confirmation notice, the local memoand/or link repository 212 may cause the screen of the mobile device todisplay a confirmation message, for example, as part of a box, bubble,logo or the like. FIG. 3 shows one example of a confirmation notice 312,according to one or more embodiments of the present disclosure. Theconfirmation notice 312 may have been displayed in response to a linkbeing saved (e.g., Link 1 of FIG. 3). In some embodiments, theconfirmation notice (i.e., the confirmation message and/or a box,bubble, logo or the like) may display on the screen of the mobile devicefor a period of time and then disappear. In some embodiments, theconfirmation notice may fade away, for example, by becoming moretransparent as time passes, until the confirmation message hasdisappeared.

It should be understood that FIG. 3 shows just one example of aconfirmation notice, and this disclosure contemplates several othertypes of confirmation notices that may indicate, among other things,that a link is being or was saved. In some embodiments, a confirmationnotice may linger or remain near a link that was saved, such that itappears to a user that the confirmation notice is displayed near thelink in the page that the user is viewing. For example, an icon, logo,box, bubble, letter(s) or the like may linger or remain near the linkthat was saved, for example, to remind the user that the user saved thelink. In this example, the local memo and/or link repository 212 maycommunicate with the application that displays the page that the user isviewing. In this example, the application that displays the page thatthe user is viewing may communicate with the local memo and/or linkrepository 212, for example, such that the application can receiveinformation from the local memo and/or link repository 212 that a linkwas saved, and such that the application can displayed a confirmationnotice near the link that was saved. In this regard, an application mayuse and/or implement an API (application programming interface) into theapplication to facilitate communication with the local memo and/or linkrepository 212.

Referring to FIG. 2, local memo 210 may include a link list/reminder214. Link list/reminder 214 may display and/or remind a user of linksthat were stored in the link repository 212. In some embodiments, thelink list/reminder 214 may be event-driven, for example, being adaptedto remind and/or prompt a user of stored links in response to some eventand/or routine that occurs in the mobile device. Various events and/orroutines may cause and/or trigger the link list/reminder 214 to displayan indication regarding saved links. For example, when a user indicatesthat the application and/or page that the user is viewing should beclosed and/or exited, the link list/reminder 214 may display anindication to the user regarding saved links. In some embodiments,various time periods and/or time events may cause and/or trigger thelink list/reminder 214 to display an indication regarding saved links.For example, the link list/reminder 214 may detect that a period of time(e.g., a configurable period of time) has passed, and may display anindication regarding saved links. As another example, the linklist/reminder 214 may detect that a period of time (e.g., a configurableperiod of time) has passed since one or more forms of user input havebeen detected, and may display an indication regarding saved links. Inthis case, a period of time without user input may indicate that theuser is ready to view previously saved links. In some embodiments, acomparison routine may cause and/or trigger the link list/reminder 214to display an indication regarding saved links. For example, acomparison routine may compare a page that a user is viewing toinformation stored in the link repository regarding saved links, and thelink list/reminder 214 may display an indication regarding saved links,for example if the content on the page the user is viewing is similar toinformation in the link repository. One example of an indication mayinclude a message that displays on the screen of the mobile device thatreads similar to the following: “It looks like you saved a link similarto what you are reading. Would you like to view it?” The comparisonroutine may perform this comparison on the same page or a different pagethan the page the user was on when the user saved the link. Other typesof comparison routines are contemplated by this disclosure.

In some embodiments of the present disclosure, the link list/reminder214 may be user-query driven, for example, being adapted to display anindication of stored links to a user in response to user input or a userquery. Various types of user input may cause and/or trigger the linklist/reminder 214 to display an indication regarding saved links. Forexample, the user may swipe or gesture pointer(s) (e.g., digital orphysical) or finger(s) across or within the screen of the mobile device.Various other forms of user input may cause and/or trigger the linklist/reminder 214 to display an indication regarding saved links, forexample, types of user input similar to those discussed above withregard to saving links in the link repository 212. In some embodiments,the types of user input may be indicated in a settings and/orconfiguration page of the local memo 210. In some embodiments, the usermay access an indication of saved links via a link repository managementtool. The link management tool may be part of the local memo 210, andthe user may navigate to and/or open the link repository management toolin various ways. For example, the user may access the link repositorymanagement tool in a manner similar to the way a user would accessvarious settings related to the OS running on the mobile device. Asanother example, the user may access the link repository management toolin a manner similar to the way a user would access various applicationsinstalled on the mobile device. The link repository management tool maydisplay various pieces of information related to information stored inthe link repository 212, and may allow a user to display an indicationof saved links.

Link list/reminder 214 may display and/or remind a user of links thatwere stored in the link repository 212, for example, in a manner that isevent-driven and/or user-query driven. Link list/reminder 214 maydisplay an indication of links, and optionally other information, thatis stored in the link repository 212. The indication of links and/orother information stored in the link repository may be displayed invarious forms. FIG. 4 shows an illustration of one example of how a linklist/reminder 414 may display an indication 408 of links and/or otherinformation stored in a link repository, according to one or moreembodiments of the present disclosure. As one specific example, theindication 408 of FIG. 4 may have been displayed in response to a userattempting to close or exit an application or page (e.g., part 406).

Indication 408 may include various components and/or pieces ofinformation. Indication 408 may include one or more messages 410. Themessage may explain why the indication is being displayed, what contentthe indication includes and/or points to, what options the user may takein relation to the indication 408. The example of FIG. 4 asks the userwhether the user would like to view any of the saved links. Anotherexample message may include a query to the user regarding whether theuser would like to see more information, more options and/or an expandedview or indication of information in the link repository. Indication 408may include a preview 412 of information stored in the link repository.Preview 412 may include a sampling of links (and optionally, otherinformation) stored in the link repository. Preview 412 may be activesuch that the user may be able to activate one of the links in thepreview without opening an expanded view. Indication 408 may include anexpansion button or option 416, which may allow a user to expand theindication 408 to display a more comprehensive view or indication ofinformation stored in the link repository. An expanded view may displayvarious pieces of information, for example, a portion of or all savedlinks that have not been revisited by the user. In some embodiments, theexpanded view may be adapted to be configurable, for example, a user maybe able to select how information in the expanded view is displayed. Forexample, a user could select to see all saved links (and optionally,contextual information) during a time period, for example, during thelast day, week, month, etc. The expanded view may allow a user to sort,order and/or group the information in various ways, for example, by thetime the link was saved, by the content of the contextual informationassociated with the link, and/or other like schemes.

Link list/reminder 214 may cause one or more applications to performfunction(s) with respect to one or more links (e.g., in the indication408 or in the expanded view). For example, if a user indicates that oneof the links (e.g., in the indication 408 or in the expanded view)should be activated and/or navigated to, an application may perform oneor more functions with respect to the link and/or the contextualinformation related to the link. For example, a new page and/orapplication may be launched and/or displayed on the screen of the mobiledevice, for example, application/page 2 (generally indicated as part208) as shown in FIG. 2. As a specific example, a user may attempt toexit the current application/page that the user was viewing, and anindication of saved links may display. The user may then select orotherwise indicate that one of the links (e.g., a URL or URI) should benavigated to. In response, a new web browser page may be launched and/ordisplayed on the screen of the device, and the page may display contentrequested and received from the URL or URI address.

Referring again to FIG. 2, local memo 210 may include one or morecontent and/or ad (advertisement) targeting routines 216. Content/adtargeting routine 216 may analyze information in the link repository,for example, stored links and contextual information related to thelinks. Stored links and/or contextual information may provide uniqueinformation (e.g., real-time information) regarding the interests of theuser that saved the links. Content/ad targeting routine 216 maycommunicate, for example, indirectly, with one or more content servers,for example, similar to content servers 106, 108, 110 of FIG. 1.Content/ad targeting routine 216 may include and/or communicate withcontent code, e.g., JavaScript code and/or code from a softwaredevelopment kit (SDK), that is programmed to formulate content requestsand communicate the content requests to one or more content servers.Content/ad targeting routine 216 may use information about userinterests, for example, received by analyzing information in the linkrepository, to formulate (or aid in formulating) content requests thatare tailored to the specific interests of the user. For example, thecontent request may be formulated to request content that is related tokeywords, phrases and the like that appear in the link repository. Thecontent code and/or content/ad targeting routine 216 may thencommunicate, for example, via a wireless module in the mobile device,formulated content requests to the one or more content serves. Thecontent code and/or content/ad targeting routine 216 may receive contentcommunicated form one or more content servers, for example, in responseto one or more content requests. The content may be related toinformation stored in the link repository, and may be uniquely tailoredto the interests of the user.

In some embodiments, the content servers may be advertising servers, andmay serve targeted ads that are related to specific advertisingrequests. In these embodiments, the content/ad targeting routine 216 mayanalyze the link repository to formulate (or aid in formulating) adrequests that are related to information stored in the link repository.The content code and/or content/ad targeting routine 216 may thenreceive one or more ads from the advertising servers, where the ads areuniquely tailored to the interests of the user.

Content/ad targeting routine 216 and/or content code may displaytargeted content (e.g., targeted ads) at a variety of places, forexample, in a variety of applications, windows, pages, etc. FIG. 4 showsone example of how targeted content 418 may be displayed. In the exampleof FIG. 4, when the indication 408 of saved links (and/or an expandedview) is displayed to a user, the indication or expanded view mayinclude an area where targeted content 418 is displayed. The content/adtargeting routine 216 may arrange and/or format the content 418 so thatit associates with the links and/or additional information that isdisplayed in the indication 408 or expanded view. For example, referringto FIG. 4, content 418 may be arranged and/or formatted so it associateswith Link 1, Link 2, Link 3, etc. In this respect, a user may choose toactivate and/or navigate to targeted content 418 instead of (or inaddition to) activating and/or navigating to saved links.

FIG. 5 shows another example of how targeted content 518 may bedisplayed. In the example of FIG. 5, the application and/or page (e.g.,part 506) that the user is viewing may contain an area that may displaycontent (e.g., using content code), and a content/ad targeting routine516 (and/or content code) may cause targeted content 518 to display onthe application/page 506. For example, in operation, a user may bebrowsing a web page (e.g., part 506), where the webpage contains an areathat is adapted to display content. At some point, the user may performan action (according to one or more of the various techniques describedherein) to indicate that one or more links (e.g., Link 1 and Link 2 asshown in FIG. 5) should be saved. The saved links may be stored in alink repository, and a content/ad targeting routine 516 may scan thelink repository to aid in formulate a content request (e.g., an adrequest) that is associated with information (e.g., Links 1 and 2, andrelated contextual information) in the link repository. The content/adtargeting routine 516 and/or content code may then receive targetedcontent (e.g., targeted ads) from the content server, where the contentis associated with information in the link repository (e.g., Links 1 and2). The content/ad targeting routine 516 and/or content code may causethe targeted content 518 to display on the same application/page 506 inthe appropriate area, such that the user sees uniquely relevant ads innear real-time. The content/ad targeting routine 516 and/or content codemay arrange and/or format the content 518 so that it associates withnearby links and/or associated information that is displayed on theapplication/page 506.

Certain embodiments of the present disclosure may be found in one ormore methods for a local mobile memo for non-interrupting link noting.With respect to the various methods described herein and depicted inassociated figures, it should be understood that, in some embodiments,one or more of the steps described and/or depicted may be performed in adifferent order. Additionally, in some embodiments, a method may includemore or less steps than are described and/or depicted.

FIG. 6A depicts a part 600 of a flow diagram that shows example steps ina method for a local mobile memo for non-interrupting link noting, inaccordance with one or more embodiments of the present disclosure. Inparticular, FIG. 6A may show example steps included in saving, storingor noting links and/or additional information in a link repository. Atstep 602, a first application and/or page may be displaying on thescreen of a mobile device. The first application and/or page may includeone or more links, e.g., similar to Links 1, 2, etc. of FIG. 5. At step604, a user may perform some action with respect to the mobile devicethat may indicate, among other things, that a link should be saved. Atstep 606, a link repository (part of a local memo) may interpret theuser action. The link repository may accept and interpret various useractions, such as swipes, gestures, drags, visual motion and/or audiblesounds, as explained above. At step 608, the link repository may saveone or more links as indicated by the user action. The link repositorymay allow a user to save one or more links into the link repositorywithout interrupting what the user is doing on a current page and/orapplication. The link repository may save, store or note additionalinformation along with a link, for example, contextual information, asexplained in detail above. At step 610, the link repository may cause aconfirmation notice to display on the screen of the mobile device, forexample, to indicate to the user that the link was saved. Severaldifferent types of confirmation notices may be displayed, as explainedin detail above.

FIG. 6B depicts a part 650 a flow diagram that shows example steps in amethod for a local mobile memo for non-interrupting link noting, inaccordance with one or more embodiments of the present disclosure. Inparticular, FIG. 6B may show example steps included in displaying anindication of information stored in a link repository. At step 652, someevent or user action may occur that may indicate that a user may beinterested in viewing links and/or other information saved in the linkrepository. At step 654, a link list/reminder may detect and interpretthe event or user action. As explained above, a link list/reminder maybe event-driven, meaning that various events and/or routines may causeand/or trigger the link list/reminder to display an indication regardingsaved links. As explained above, a link list/reminder may be user-querydriven, meaning that various types of user input may cause and/ortrigger the link list/reminder to display an indication regarding savedlinks. At step 656, the link list/reminder may cause an indication ofinformation saved in the link repository to be displayed. The indicationof links and/or other information stored in the link repository may bedisplayed in various forms, as explained above. Additionally, one ormore expanded views may be displayed, for example, in response to userinput. At step 658, the user may indicate that one of the links shouldbe activated and/or navigated to. For example, the user may click on ortouch a link that is displayed in the indication (step 656). At step660, the link list/reminder may cause an application to perform one ormore functions with respect to the link and/or the contextualinformation related to the link. For example, a new page and/orapplication may be launched and/or displayed on the screen of the mobiledevice, as explained above.

FIG. 6C depicts a part 670 of a flow diagram that shows example steps ina method for a local mobile memo for non-interrupting link noting, inaccordance with one or more embodiments of the present disclosure. Inparticular, FIG. 6C may show how targeted ads (advertisements) may bedisplayed. At step 672, a content/ad targeting routine may analyze thelink repository, for example, analyzing links and other information suchas contextual information. As can be seen in FIGS. 6A and 6C (and circle“B”), the content/ad targeting routine may analyze links and otherinformation saved into the link repository at step 608 of FIG. 6A. Atstep 674, the content/ad targeting routine may aid in formulating one ormore content requests. The content/ad targeting routine may useinformation about user interests, for example, received by analyzinginformation in the link repository, to formulate content requests thatare tailored to the specific interests of the user. At step 676, thecontent request(s) may be communicated to one or more content servers(e.g., advertising servers). At step 678, content may be received fromthe one or more content servers, for example, in response to the contentrequest(s). The content request(s) may be communicated to (and contentreceived from) the content server(s) in a variety of ways, for example,depending on where the eventual content is to be displayed. For example,if the original content is to be displayed on the application/page thata user is currently viewing, the content request may be communicated to(and content received from) the content server(s) via ad code that isincluded in the application/page, for example, JavaScript code and/orcode from a software development kit (SDK). As another example, if thecontent is to be displayed when the local memo displays an indication orreminder of links in the link repository, code included in the localmemo may communicate the content request and receive content. At step680, the content/ad targeting routine may aid in displaying and/orformatting targeted content (e.g., targeted ads). As can be seen inFIGS. 6A-6C (and circle “C”), content/ads may be displayed at a varietyof places. For example, an application and/or page (e.g., step 602 ofFIG. 6A) that the user is viewing may contain an area that may displaycontent, and a content/ad targeting routine may cause targeted contentto display on the application/page. As another example, when anindication/reminder of saved links (and/or an expanded view) isdisplayed to a user (e.g., at step 656 of FIG. 6B), the indication orexpanded view may include an area where targeted content is displayed.At step 680, the content/ad targeting routine may aid in arrangingand/or formatting the content so that it associates with the linksand/or additional information that is displayed.

Various embodiments of the present disclosure describe one or moresystems, methods, routines and/or techniques for a local mobile memo fornon-interrupting link noting. In one or more embodiments, a method maybe executed on a data processing system, computer, mobile device,smartphone or the like. The method may include displaying to a user apage containing a link. The link may be able to be processed by asoftware program to perform an associated action. The method may includereceiving a first user input that indicates the link should be saved forpotential later processing. The method may include saving the link to alocal repository so that the link can be processed later. The saving mayoccur while the page continues to be displayed. The saving may occurwithout processing the link to perform the associated action. The methodmay include displaying a confirmation to the user that the link has beensaved to the local repository. The method may include displaying a list(e.g., including the link) of one or more links saved in the repository.The displaying of the list may occur in response to an event thatindicates that the user may be interested in viewing links in the linkrepository. The method may include saving contextual information relatedto the link to the local repository. The contextual information mayinclude information that was located near the link as it displayed onthe page. The method may include displaying the contextual informationwhen the list of one or more links is displayed. The method may includereceiving a second user input that selects the link from the list of oneor more links, and processing the link to perform the associated action.

The method may include retrieving content, from a remote server, that isrelated to one or more of the links and/or one or more of the pieces ofcontextual information in the link repository, and displaying thecontent on the first page. The method may include analyzing the linkrepository including the one or more links and the one or more pieces ofcontextual information. The method may include retrieving content, froma remote server, that is related to one or more of the links and/or oneor more of the pieces of contextual information in the link repository.The method may include displaying the content near the list of one ormore links saved in the repository when the list is displayed.

In some embodiments, the first user input includes swiping informationgenerated by a touchscreen in the data processing system, where thetouchscreen generates the swiping information in response to the userswiping the user's finger or a pointer across the touchscreen. In someembodiments, the link is a URL or URI and processing the link may causea web browser to navigate to a target associated with the URL or URI. Insome embodiments, the event that indicates that the user may beinterested in viewing links in the link repository may include the pageclosing. In some embodiments, the event that indicates that the user maybe interested in viewing links in the link repository may include aperiod of time having passed.

In one or more embodiments of the present disclosure, a method may beexecuted on a data processing system, computer, mobile device,smartphone or the like. The method may include displaying to a user apage containing one or more links and one or more pieces of contextualinformation related to the one or more links. Each of the one or morelinks may be able to be processed by a software program to perform anassociated action. The method may include saving one or more of thelinks and one or more of the pieces of contextual information to a localrepository. The saving may occur in response to user input, and thesaving may occur while the page continues to be displayed. The savingmay occur without processing the links to perform the associatedactions. The method may include analyzing one or more of the linksand/or one or more of the pieces of contextual information that weresaved in the local repository. The method may include formulating acontent request, where the content request is related to one or more ofthe links and/or one or more of the pieces of contextual information inthe local repository. The method may include communicating the contentrequest to a content server. The method may include receiving contentfrom the content server, where the content was communicated by thecontent server in response to the content request. The method mayinclude displaying the content on the first page. The method may includeformatting the content displayed on the first page such that parts ofthe content are displayed respectively near relevant links and/orcontextual information on the first page. In some embodiments, thecontent request is an advertising request and the content server is anadvertising server.

One or more embodiments of the present disclosure describe a dataprocessing system that includes one or more memory units that storecomputer code and one or more processor units coupled to the one or morememory units. The one or more processor units may execute the computercode stored in the one or more memory units to adapt the data processingsystem to display to a user a page containing a link. The link may beable to be processed by a software program to perform an associatedaction. The data processing system may be further adapted to receive afirst user input that indicates the link should be saved for potentiallater processing. The data processing system may be further adapted tosave the link to a local repository so that the link can be processedlater. The saving may occur while the page continues to be displayed,and the saving may occur without processing the link to perform theassociated action. The data processing system may be further adapted todisplay a confirmation to the user that the link has been saved to thelocal repository. The data processing system may be further adapted todisplay a list (e.g., including the link) of one or more links saved inthe repository. The displaying may occur in response to an event thatindicates that the user may be interested in viewing links in the linkrepository. In some embodiments, the first user input includes swipinginformation generated by a touchscreen in the data processing system,wherein the touchscreen generates the swiping information in response tothe user swiping the user's finger or a pointer across the touchscreen.In some embodiments, the event that indicates that the user may beinterested in viewing links in the link repository may include the pageclosing.

In some embodiments, the data processing system may be further adaptedto save contextual information related to the link to the localrepository. The contextual information may include information that waslocated near the link as it displayed on the page. The data processingsystem may be further adapted to display the contextual information whenthe list of one or more links is displayed. The data processing systemmay be further adapted to receive a second user input that selects thelink from the list of one or more links, and process the link to performthe associated action. The data processing system may be further adaptedto analyze the link repository including the one or more links and theone or more pieces of contextual information. The data processing systemmay be further adapted to retrieve content, from a remote server, thatis related to one or more of the links and/or one or more of the piecesof contextual information in the link repository. The data processingsystem may be further adapted to display the content on the first page.The data processing system may be further adapted to analyze the linkrepository including the one or more links and the one or more pieces ofcontextual information. The data processing system may be furtheradapted to retrieve content, from a remote server, that is related toone or more of the links and/or one or more of the pieces of contextualinformation in the link repository. The data processing system may befurther adapted to display the content near the list of one or morelinks saved in the repository when the list is displayed.

The methods, routines and solutions of the present disclosure, includingthe example methods and routines illustrated in the flowcharts and blockdiagrams of the different depicted embodiments may be implemented assoftware executed by a data processing system that is programmed suchthat the data processing system is adapted to perform and/or execute themethods, routines, techniques and solutions described herein. Each blockor symbol in a block diagram or flowchart diagram referenced herein mayrepresent a module, segment or portion of computer usable or readableprogram code which comprises one or more executable instructions forimplementing, by one or more data processing systems, the specifiedfunction or functions. In some alternative implementations of thepresent disclosure, the function or functions illustrated in the blocksor symbols of a block diagram or flowchart may occur out of the ordernoted in the figures. For example in some cases two blocks or symbolsshown in succession may be executed substantially concurrently or theblocks may sometimes be executed in a different order depending upon thefunctionality involved. Part or all of the computer code may be loadedinto the memory of a data processing system before the data processingsystem executes the code.

FIG. 7 depicts a block diagram of an example data processing system 700that may be included within a mobile device 706 or smartphone, accordingto one or more embodiments of the present disclosure. The dataprocessing system 700 may be used to execute, either partially orwholly, one or more of the methods, routines and/or solutions of thepresent disclosure. In some embodiments of the present disclosure, morethan one data processing system, for example data processing systems700, may be used to implement the methods, routines, techniques and/orsolutions described herein. In the example of FIG. 7, data processingsystem 700 may include a communications fabric 702 which providescommunications between components, for example a processor unit 704, amemory 707, a persistent storage 708, a communications unit 710, aninput/output (I/O) unit 712 and a display 714. A bus system may be usedto implement communications fabric 702 and may be comprised of one ormore buses such as a system bus or an input/output bus. The bus systemmay be implemented using any suitable type of architecture that providesfor a transfer of data between different components or devices attachedto the bus system.

Processor unit 704 may serve to execute instructions (for example, asoftware program, an application, SDK code, native OS code and the like)that may be loaded into the data processing system 700, for example,into memory 707. Processor unit 704 may be a set of one or moreprocessors or may be a multiprocessor core depending on the particularimplementation. Processor unit 704 may be implemented using one or moreheterogeneous processor systems in which a main processor is presentwith secondary processors on a single chip. As another illustrativeexample, processor unit 704 may be a symmetric multi-processor systemcontaining multiple processors of the same type.

Memory 707 may be, for example, a random access memory or any othersuitable volatile or nonvolatile storage device. Memory 707 may includeone or more layers of cache memory. Persistent storage 708 may takevarious forms depending on the particular implementation. For example,persistent storage 708 may contain one or more components or devices.For example, persistent storage 708 may be a hard drive, a solid-statedrive, a flash memory or some combination of the above.

Instructions for an operating system may be located on persistentstorage 708. In one specific embodiment, the operating system may besome version of a number of known operating systems for mobile devicesor smartphones (e.g, Android, iOS, etc.). Instructions for applicationsand/or programs may also be located on persistent storage 708. Theseinstructions may be loaded into memory 707 for execution by processorunit 704. For example, the methods and/or processes of the differentembodiments described in this disclosure may be performed by processorunit 704 using computer implemented instructions which may be loadedinto a memory such as memory 707. These instructions are referred to asprogram code, computer usable program code or computer readable programcode that may be read and executed by a processor in processor unit 704.

Display 714 may comprise a mechanism to display information to a user,for example, via a LCD or LED screen or monitor, or other type ofdisplay. It should be understood, throughout this disclosure, that theterm “display” may be used in a flexible manner to refer to either aphysical display such as a physical screen, or to the image that a usersees on the screen of a physical device. Input/output (I/O) unit 712allows for input and output of data with other devices that may beconnected to data processing system 700. Input/output devices can becoupled to the system either directly or through intervening I/Ocontrollers.

Communications unit 710 may provide for communications with other dataprocessing systems or devices, for example, via one or more networks.Communications unit 710 may be a network interface card. Communicationsunit 710 may provide communications through the use of wired and/orwireless communications links. In some embodiments, the communicationsunit may include circuitry that communicates according to variouswireless communication standards, for example, cellular standards, WIFIstandards, Bluetooth standards and the like.

The different components illustrated for data processing system 700 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 700. Other components shown in FIG. 7 can be variedfrom the illustrative examples shown.

The description of the different advantageous embodiments has beenpresented for purposes of illustration and the description and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. Further different advantageous embodimentsmay provide different advantages as compared to other advantageousembodiments. The embodiment or embodiments selected are chosen anddescribed in order to best explain the principles of the embodiments ofthe practical application and to enable others of ordinary skill in theart to understand the disclosure for various embodiments with variousmodifications as are suited to the particular use contemplated.

We claim:
 1. A computer-implemented method comprising: providing fordisplay a page containing a link embedded in the page, wherein the linkis configured to be processed by a software program to perform an actionassociated with the link; while providing the page for display: (i)receiving an input that identifies the link, and (ii) in response to theinput, saving, to a repository, the link for later processing,contextual information related to the link, wherein the contextualinformation comprises text from the page that indicates contentassociated with the link, and a second link referring to the pageprovided for display, wherein the second link is different from thelink, and wherein processing the second link causes the software programto display the page; and providing for display a list of one or morelinks saved in the repository, wherein the list includes the link andthe second link.
 2. The method of claim 1, wherein the page is a page ofcontent generated by an application.
 3. The method of claim 2, whereinthe page is a web page and the application is a web browser application.4. The method of claim 1, wherein the method is performed by a mobiledevice.
 5. The method of claim 1, further comprising: providing fordisplay a second page containing second content; and making adetermination that the second content is similar to the contextualinformation related to the first link, wherein providing for display thelist of one or more links saved in the repository is performed inresponse to the determination that the second content is similar to thecontextual information related to the first link.
 6. The method of claim5, further comprising: in response to the determination that the secondcontent is similar to the contextual information related to the firstlink, providing for display the contextual information with the list ofone or more links saved in the repository.
 7. The method of claim 1,wherein the input includes swiping information generated by atouchscreen.
 8. The method of claim 1, further comprising: providing fordisplay a confirmation that the link has been saved to the repository.9. The method of claim 1, wherein providing for display the list of oneor more links saved in the repository is performed in response toreceipt of input requesting to exit the page.
 10. The method of claim 1,further comprising: retrieving third content, from a remote server, thatis related to one or more of the links and the contextual information inthe link repository; and providing for display the third content on theweb page.
 11. A computing system, comprising: one or more memory unitsthat store computer instructions; and one or more processor unitscoupled to the one or more memory units, wherein the one or moreprocessor units execute the computer instructions stored in the one ormore memory units to cause the computing system to perform operationscomprising: providing for display a page containing a link embedded inthe page, wherein the link is configured to be processed by a softwareprogram to perform an action associated with the link; while providingthe page for display: (i) receiving an input that identifies the link,and (ii) in response to the input, saving, to a repository, the link forlater processing, contextual information related to the link, whereinthe contextual information comprises text from the page that indicatescontent associated with the link, and a second link referring to thepage provided for display, wherein the second link is different from thelink, and wherein processing the second link causes the software programto display the page; and providing for display a list of one or morelinks saved in the repository, wherein the list includes the link andthe second link.
 12. The computing system of claim 11, wherein the pageis a page of content generated by an application.
 13. The computingsystem of claim 12, wherein the page is a web page and the applicationis a web browser application.
 14. The computing system of claim 11,wherein the computing system is a mobile device.
 15. The computingsystem of claim 11, the operations further comprising: providing fordisplay a second page containing second content; and making adetermination that the second content is similar to the contextualinformation related to the first link, wherein providing for display thelist of one or more links saved in the repository is performed inresponse to the determination that the second content is similar to thecontextual information related to the first link.
 16. The computingsystem of claim 15, the operations further comprising: in response tothe determination that the second content is similar to the contextualinformation related to the first link, providing for display thecontextual information with the list of one or more links saved in therepository.
 17. The computing system of claim 11, wherein the inputincludes swiping information generated by a touchscreen.
 18. Thecomputing system of claim 11, the operations further comprising:providing for display a confirmation that the link has been saved to therepository.
 19. A method executed by a mobile device, the methodcomprising: providing for display a page containing a link embedded inthe page, wherein the link is configured to be processed by a softwareprogram to perform an action associated with the link; while providingthe page for display: (i) receiving, via a touchscreen of the mobiledevice, an input gesture that identifies the link, and (ii) in responseto the input gesture, saving, to a repository, the link for laterprocessing, contextual information related to the link, wherein thecontextual information comprises text from the page that indicatescontent associated with the link, and a second link referring to thepage provided for display, wherein the second link is different from thelink, and wherein processing the second link causes the software programto display the page; and providing for display a list of one or morelinks saved in the repository, wherein the list includes the link andthe second link.
 20. The method of claim 19, further comprising:providing for display a second page containing second content; andmaking a determination that the second content is similar to thecontextual information related to the first link, wherein providing fordisplay the list of one or more links saved in the repository isperformed in response to the determination that the second content issimilar to the contextual information related to the first link.